package ptr

import "fmt"

// 值传递
func swapVal(a, b int) {
	b, a = a, b
}

// 利用指针进行引用传递
func swapPtr(a, b *int) {
	*b, *a = *a, *b
}

// 利用返回值来实现交换
func swapReturn(a, b int) (int, int) {
	return b, a
}

func main() {
	a, b := 3, 4
	//swapVal(a, b) // 无法交换，值传递
	//swapPtr(&a, &b) // 传入两个地址，成功交换
	// 外部使用变量接返回值
	a, b = swapReturn(a, b)
	fmt.Println(a, b)
}
